﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="StyleDictionary.xaml" />
    </ResourceDictionary.MergedDictionaries>
    <!-- Colors -->
    <!-- Default Colors -->
    <!--<Color x:Key="TxtBackground" R="#EE" G="#EE" B="#EE" A="#FF" />
    <Color x:Key="TxtForeground" R="#00" G="#00" B="#00" A="#FF" />
    <Color x:Key="HighBackground" R="#FF" G="#FF" B="#FF" A="#FF" />
    <Color x:Key="LowBackground" R="#CC" G="#CC" B="#CC" A="#FF"/>
    <Color x:Key="GlyphColor" R="#CC" G="#CC" B="#CC" A="#FF" />-->
    
    <!-- Maroon and Tan Colors -->
    <!--<Color x:Key="Maroon" R="#57" G="#00" B="#26" A="#FF" />
    <Color x:Key="LightMaroon" R="#87" G="#00" B="#56" A="#FF" />
    <Color x:Key="DarkTan" R="#70" G="#5B" B="#35" A="#FF" />
    <Color x:Key="DimTan" R="#C7" G="#B0" B="#7B" A="#FF" />
    <Color x:Key="Tan" R="#E8" G="#D9" B="#AC" A="#FF" />
    <Color x:Key="LightTan" R="#FF" G="#F6" B="#D9" A="#FF" />-->


    <!-- Expander Template Brushes -->
    <!-- Fill Brushes -->

    <!-- Normal brush -->
    <LinearGradientBrush x:Key="NormalBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <!--<GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#CCC" Offset="1.0"/>-->
                <GradientStop Color="{StaticResource HighBackground}" Offset="0.0" />
                <GradientStop Color="{StaticResource LowBackground}" Offset="1.0" />
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <!-- Horizontal Normal Brush #FFF #CCC -->
    <LinearGradientBrush x:Key="HorizontalNormalBrush" StartPoint="0,0" EndPoint="1,0">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <!--<GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#CCC" Offset="1.0"/>-->
                <GradientStop Color="{StaticResource HighBackground}" Offset="0.0" />
                <GradientStop Color="{StaticResource LowBackground}" Offset="1.0" />
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <!-- Light Brush #FFF #EEE -->
    <LinearGradientBrush x:Key="LightBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <!--<GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#EEE" Offset="1.0"/>-->
                <GradientStop Color="{StaticResource HighBackground}" Offset="0.0" />
                <GradientStop Color="{StaticResource TxtBackground}" Offset="1.0" />
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <!-- Horizontal Light Brush #FFF #EEE -->
    <LinearGradientBrush x:Key="HorizontalLightBrush" StartPoint="0,0" EndPoint="1,0">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <!--<GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#EEE" Offset="1.0"/>-->
                <GradientStop Color="{StaticResource HighBackground}" Offset="0.0" />
                <GradientStop Color="{StaticResource TxtBackground}" Offset="1.0" />
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <!-- Hover Brush #FFF #CCC -->
    <LinearGradientBrush x:Key="HoverBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <!--<GradientStop Color="#FFF" Offset="0.0"/>
                <GradientStop Color="#CCC" Offset="1.0"/>-->
                <GradientStop Color="{StaticResource HighBackground}" Offset="0.0" />
                <GradientStop Color="{StaticResource LowBackground}" Offset="1.0" />
                <!--<GradientStop Color="#FFF" Offset="0.5" />
                    <GradientStop Color="{StaticResource LightMaroon}" Offset="1.0" />-->
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <!-- Pressed Brush #BBB #EEE #EEE #FFF -->
    <LinearGradientBrush x:Key="PressedBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <!--<GradientStop Color="#BBB" Offset="0.0"/>
                <GradientStop Color="#EEE" Offset="0.1"/>
                <GradientStop Color="#EEE" Offset="0.9"/>
                <GradientStop Color="#FFF" Offset="1.0"/>-->
                <GradientStop Color="{StaticResource LowBackground}" Offset="0.0" />
                <GradientStop Color="{StaticResource TxtBackground}" Offset="0.1" />
                <GradientStop Color="{StaticResource TxtBackground}" Offset="0.9" />
                <GradientStop Color="{StaticResource HighBackground}" Offset="1.0" />
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <!--<SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />-->
    <SolidColorBrush x:Key="DisabledForegroundBrush" Color="{StaticResource DisabledForegroundColor}" />
    
    <!--<SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#EEE" />-->
    <SolidColorBrush x:Key="DisabledBackgroundBrush" Color="{StaticResource DisabledBackgroundColor}" />

    <SolidColorBrush x:Key="WindowBackgroundBrush" Color="#FFF" />

    <SolidColorBrush x:Key="SelectedBackgroundBrush" Color="#DDD" />

    <!-- Border Brushes -->
    <!-- Normal Border Brush #CCC #444 -->
    <LinearGradientBrush x:Key="NormalBorderBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#CCC" Offset="0.0"/>
                <GradientStop Color="#444" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <!-- Horizontal Normal Border Brush #CCC #444 -->
    <LinearGradientBrush x:Key="HorizontalNormalBorderBrush" StartPoint="0,0" EndPoint="1,0">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#CCC" Offset="0.0"/>
                <GradientStop Color="#444" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <!-- Defaulted Border Brush #777 #000 -->
    <LinearGradientBrush x:Key="DefaultedBorderBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#777" Offset="0.0"/>
                <GradientStop Color="#000" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <!-- Pressed Border Brush #444 #888 -->
    <LinearGradientBrush x:Key="PressedBorderBrush" StartPoint="0,0" EndPoint="0,1">
        <GradientBrush.GradientStops>
            <GradientStopCollection>
                <GradientStop Color="#444" Offset="0.0"/>
                <GradientStop Color="#888" Offset="1.0"/>
            </GradientStopCollection>
        </GradientBrush.GradientStops>
    </LinearGradientBrush>

    <SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />

    <SolidColorBrush x:Key="SolidBorderBrush" Color="#888" />

    <SolidColorBrush x:Key="LightBorderBrush" Color="#AAA" />

    <!-- Miscellaneous Brushes -->
    <SolidColorBrush x:Key="GlyphBrush" Color="{StaticResource GlyphColor}" />

    <SolidColorBrush x:Key="LightColorBrush" Color="#DDD" />
    
    <SolidColorBrush x:Key="ForegroundBrush" Color="{StaticResource TxtForeground}" />

    <!-- End Expander Template Brushes -->
    
    <!-- Expander Template -->
    <ControlTemplate x:Key="ExpanderToggleButton" TargetType="ToggleButton">

        <Border Name="Border" CornerRadius="2,0,0,0" Background="Transparent" BorderBrush="{StaticResource NormalBorderBrush}" BorderThickness="0,0,1,0">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>
                <Ellipse Grid.Column="0" Width="19" Height="19" 
                             HorizontalAlignment="Center" VerticalAlignment="Center" 
                             Stroke="{StaticResource GlyphBrush}"  
                             StrokeThickness="2" Opacity="0.9"/>
                <Path Grid.Column="0" Name="Arrow" 
                          Fill="Transparent"
                          Stroke="{StaticResource GlyphBrush}"
                          HorizontalAlignment="Center" VerticalAlignment="Center" 
                          StrokeThickness="2" StrokeEndLineCap="Round" Opacity="1.0"
                          Data="M 0,0  m 0.5,2  l 4,5  l 4,-5" />
                <ContentPresenter Grid.Column="1" Margin="3" ContentSource="Content"  RecognizesAccessKey="True" />
            </Grid>
        </Border>

        <ControlTemplate.Triggers>
            <Trigger Property="ToggleButton.IsMouseOver" Value="true">
                <Setter TargetName="Border" Property="Background" Value="{StaticResource HoverBrush}" />
            </Trigger>
            <Trigger Property="IsPressed" Value="true">
                <Setter TargetName="Border" Property="Background" Value="{StaticResource PressedBrush}" />
            </Trigger>
            <Trigger Property="IsChecked" Value="true">
                <Setter TargetName="Arrow" Property="Data" Value="M 0,0 m 0.5,5 l 4,-5 l 4,5" />
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
                <Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackgroundBrush}" />
                <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DisabledBorderBrush}" />
                <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
                <Setter TargetName="Arrow" Property="Fill" Value="{StaticResource DisabledForegroundBrush}" />
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>

    <Style TargetType="Expander">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Expander">

                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Name="ContentRow" Height="0"/>
                        </Grid.RowDefinitions>
                        <Border Name="Border" Grid.Row="0" Background="{StaticResource LightBrush}" BorderBrush="{StaticResource NormalBorderBrush}" BorderThickness="1"  CornerRadius="2,2,0,0" >
                            <ToggleButton 
                                    IsChecked="{Binding Path=IsExpanded,Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
                                    OverridesDefaultStyle="True"  
                                    Template="{StaticResource ExpanderToggleButton}"  
                                    Content="{Binding Path=Header, RelativeSource={RelativeSource TemplatedParent}}"
                                    Background="{StaticResource NormalBrush}" 
                                    Foreground="{StaticResource ForegroundBrush}"/>
                        </Border>
                        <!--<Border Name="Content" Grid.Row="1" 
                                    Background="{StaticResource WindowBackgroundBrush}" 
                                    BorderBrush="{StaticResource SolidBorderBrush}" 
                                    BorderThickness="1,0,1,1" CornerRadius="0,0,2,2" >-->
                        <Border Name="Content" Grid.Row="1" 
                                    Background="Transparent" 
                                    BorderBrush="{StaticResource SolidBorderBrush}" 
                                    BorderThickness="1,0,1,1" CornerRadius="0,0,2,2" >
                            <ContentPresenter Margin="4" />
                        </Border>
                    </Grid>

                    <ControlTemplate.Triggers>
                        <Trigger Property="IsExpanded" Value="True">
                            <Setter TargetName="ContentRow" Property="Height" Value="Auto" />
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="False">
                            <Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackgroundBrush}" />
                            <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DisabledBorderBrush}" />
                            <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
                            <Setter Property="Opacity" Value="0.25" />
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <!-- End Expander Template -->

</ResourceDictionary>